<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

require "contaDAO.php";
require "fornecedorDAO.php";
require_once "categoriaDAO.php";
require_once "contaCategoria.php";

class ContaBO {

    private $contaDAO;
    private $fornecedorDAO;
    private $categoriaDAO;

    public function __construct() {
        $this->contaDAO = new ContaDAO();
        $this->fornecedorDAO = new FornecedorDAO();
        $this->categoriaDAO = new CategoriaDAO();
    }

    public function preCadastro($conta, $fornecedor = null, $listCheckbox = null) {
        
        if($conta->getLogin() != null){
            $login = $this->contaDAO->lista("SELECT login FROM tb_conta WHERE login = '".$conta->getLogin()."'");
            
            if($login != null){
                $msg = "Email ja cadastrado para uma conta.";
                return $msg;
            }
        }
        
        $contaId = $this->contaDAO->save($conta);

        if($contaId!=0) {
            $msg = "SUCESSO@Id=$contaId";
            if($fornecedor != null) {
                $fornecedor->setIdConta($contaId);
                $fornecedorId = $this->fornecedorDAO->save($fornecedor);

                if($fornecedorId != 0) {

                    for($i=0; $i<=count($listCheckbox); $i++) {
                        $contaCategoria = new ContaCategoria();
                        $contaCategoria->setIdConta($contaId);
                        $contaCategoria->setIdCategoria($listCheckbox[$i]);
                        $this->categoriaDAO->saveContaCategoria($contaCategoria);
                    }
                   
                }
                else
                    $msg = "ERRO";
            }
        }
        else
            $msg= "ERRO";
        return $msg;
    }

    public function autenticar($conta){
        return $this->contaDAO->autenticar($conta);
    }
    
    
    public function montarImagemConta($idConta){
        $this->contaDAO->montarImagemConta($idConta);
    }

    public function buscarContaPorId($idConta){
        return $this->contaDAO->buscarContaPorId($idConta);
    }


    public function gravarImagem($imagem, $tipo, $idConta){
        return $this->contaDAO->gravarImagem($imagem, $tipo, $idConta);
    }

    public function atualizarPerfil($conta){
        $this->contaDAO->atualizarPerfil($conta);
    }

    public function getContaDAO() {
        return $this->contaDAO;
    }

    public function setContaDAO($contaDAO) {
        $this->contaDAO = $contaDAO;
    }
    
    public function getFornecedorDAO() {
        return $this->fornecedorDAO;
    }

    public function setFornecedorDAO($fornecedorDAO) {
        $this->fornecedorDAO = $fornecedorDAO;
    }

    public function getCategoriaDAO() {
        return $this->categoriaDAO;
    }

    public function setCategoriaDAO($categoriaDAO) {
        $this->categoriaDAO = $categoriaDAO;
    }

}

?>
